/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.carrito.jsf.bean;

import com.carrito.jsf.persistence.Articulo;
import com.carrito.jsf.persistence.PedidoItem;
import java.io.Serializable;
import java.util.ArrayList;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.RowEditEvent;

@ManagedBean(name = "pedidoItemBean")
@SessionScoped
public class BeanPedidoItem implements Serializable {

    private static long serialVersionUID = 1L;
    private Articulo item;
    private Integer cantidad;
    private Double precio;
    private PedidoItem pedidoItem;
    private static  ArrayList<PedidoItem> pedidoItemList = new ArrayList<PedidoItem>();

    public String addAction() {
        PedidoItem pedidoIte = new PedidoItem(this.item, this.cantidad, this.precio);
        pedidoItemList.add(pedidoIte);

        item = new Articulo();
        cantidad = ((Integer) 0);
        precio = ((Double) 0.0);
        return null;
    }

    public void onEdit(RowEditEvent event) {
        FacesMessage msg = new FacesMessage("Item Editado", ((PedidoItem) event.getObject()).getArticulo().getDescripcion());
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    public void onCancel(RowEditEvent event) {
        FacesMessage msg = new FacesMessage("Item Cancelado");
        FacesContext.getCurrentInstance().addMessage(null, msg);
        getPedidoItemList().remove((PedidoItem) event.getObject());
    }

    /**
     * @return the item
     */
    public Articulo getItem() {
        return item;
    }

    /**
     * @param item the item to set
     */
    public void setItem(Articulo item) {
        this.item = item;
    }

    /**
     * @return the cantidad
     */
    public Integer getCantidad() {
        return cantidad;
    }

    /**
     * @param cantidad the cantidad to set
     */
    public void setCantidad(Integer cantidad) {
        this.cantidad = cantidad;
    }

    /**
     * @return the precio
     */
    public Double getPrecio() {
        return precio;
    }

    /**
     * @param precio the precio to set
     */
    public void setPrecio(Double precio) {
        this.precio = precio;
    }

    /**
     * @return the pedidoItem
     */
    public PedidoItem getPedidoItem() {
        return pedidoItem;
    }

    /**
     * @param pedidoItem the pedidoItem to set
     */
    public void setPedidoItem(PedidoItem pedidoItem) {
        this.pedidoItem = pedidoItem;
    }

    /**
     * @return the serialVersionUID
     */
    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    /**
     * @param aSerialVersionUID the serialVersionUID to set
     */
    public static void setSerialVersionUID(long aSerialVersionUID) {
        serialVersionUID = aSerialVersionUID;
    }

    /**
     * @return the pedidoItemList
     */
    public static ArrayList<PedidoItem> getPedidoItemList() {
        return pedidoItemList;
    }

    /**
     * @param aPedidoItemList the pedidoItemList to set
     */
    public static void setPedidoItemList(ArrayList<PedidoItem> aPedidoItemList) {
        pedidoItemList = aPedidoItemList;
    }
}